#include "status.h"

typedef struct glistnode{
	int tag;
	union{
		datatype atom;
		struct{
			struct glistnode *head;
			struct glistnode *tail;
		}sublist;
	}val;
}glnode;


status init(glnode **s,char str[]);

status length(glnode *s);

status atomnum(glnode *s);

status depth(glnode *s);

status gethead(glnode *s,glnode **head);

status gettail(glnode *s,glnode **tail);

status search(glnode *s);

status insert(glnode *s,datatype e);

status destroy(glnode *s);

void show(glnode *s);


